package com.king.modules.system.domain.vo;

import com.king.common.constant.UserConstants;
import com.king.common.utils.text.StringUtils;
import com.king.modules.system.domain.SysMenuEntity;

/**
 * 路由显示信息
 * 
 * @author king
 */

/**
 * 建议：路由 path 路径与文件夹名称相同，找文件可浏览器地址找，方便定位文件位置
 *
 * 路由meta对象参数说明 meta: { title: 菜单栏及 tagsView 栏、菜单搜索名称（国际化） isLink：
 * 是否超链接菜单，开启外链条件，`1、isLink: 链接地址不为空 2、isIframe:false` isHide： 是否隐藏此路由
 * isKeepAlive： 是否缓存组件状态 isAffix： 是否固定在 tagsView 栏上 isIframe：
 * 是否内嵌窗口，开启条件，`1、isIframe:true 2、isLink：链接地址不为空` roles：
 * 当前路由权限标识，取角色管理。控制路由显示、隐藏。超级管理员：admin 普通角色：common icon： 菜单、tagsView 图标，阿里：加
 * `iconfont xxx`，fontawesome：加 `fa xxx` }
 */
public class MetaVo {

	/**
	 * 设置该路由在侧边栏和面包屑中展示的名字
	 */
	private String title;

	/**
	 * 设置该路由的图标，对应路径src/assets/icons/svg
	 */
	private String icon;

	/**
	 * 设置为true，则不会被 <keep-alive>缓存
	 */
	private boolean noCache;

	/**
	 * 内链地址（http(s)://开头）
	 */
//	private String link;

	/** 类型（M目录 C菜单 F按钮） */
//	private String menutype;

	/** 权限字符串 */
	private String perms;

	/* 是否显示 */
	// private boolean hidden;

	//////////////////////////////////////////////////
	private String isLink = "";
	private Boolean isHide = false;
	private Boolean isFull = false;
	private Boolean isAffix = false;
	private Boolean isKeepAlive = true;

	public MetaVo() {
	}

	public MetaVo(SysMenuEntity menu) {
		this.title = menu.getNodename();
		this.icon = menu.getIcon();
//		this.link = menu.getPath();
		this.noCache = StringUtils.equals("1", menu.getIscache());
//		if (StringUtils.ishttp(menu.getPath())) {
//			this.link = menu.getPath();
//		}
//		this.menutype = menu.getMenutype();
		this.perms = menu.getPerms();
		// this.hidden = menu.getMenutype().equals(UserConstants.TYPE_ROUTE);
//		this.isHide = "1".equals(menu.getVisible());
		this.isHide = menu.getMenutype().equals(UserConstants.TYPE_ROUTE);
	}

	public boolean isNoCache() {
		return noCache;
	}

	public void setNoCache(boolean noCache) {
		this.noCache = noCache;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getIcon() {
		return icon;
	}

	public void setIcon(String icon) {
		this.icon = icon;
	}

	public String getPerms() {
		return perms;
	}

	public void setPerms(String perms) {
		this.perms = perms;
	}

	public String getIsLink() {
		return isLink;
	}

	public void setIsLink(String isLink) {
		this.isLink = isLink;
	}

	public Boolean getIsHide() {
		return isHide;
	}

	public void setIsHide(Boolean isHide) {
		this.isHide = isHide;
	}

	public Boolean getIsFull() {
		return isFull;
	}

	public void setIsFull(Boolean isFull) {
		this.isFull = isFull;
	}

	public Boolean getIsAffix() {
		return isAffix;
	}

	public void setIsAffix(Boolean isAffix) {
		this.isAffix = isAffix;
	}

	public Boolean getIsKeepAlive() {
		return isKeepAlive;
	}

	public void setIsKeepAlive(Boolean isKeepAlive) {
		this.isKeepAlive = isKeepAlive;
	}

}
